package com.lilingguo.easyserver.dao;

import com.lilingguo.easyserver.pojo.ServiceInfo;

import java.util.List;

/**
 * 持久层接口
 * 维护服务信息
 *
 * @Author: 黎铃果
 * @Date: 2020/05/28 16:38
 */
public interface ServiceInfoDao {

    /**
     * 初始化
     */
    void init();

    /**
     * 保存服务信息
     * @param info 待保存信息
     * @return 该操作所影响的行数
     */
    int saveInfo(ServiceInfo info);

    /**
     * 删除服务信息
     * @param info 待删除信息
     * @return 该操作所影响的行数
     */
    int removeInfo(ServiceInfo info);

    /**
     * 删除过期服务信息
     */
    void removeExpiredInfos();

    /**
     * 根据服务名查询服务列表
     * @param serviceName 服务名
     * @return 服务集合
     */
    List<ServiceInfo> getInfos(String serviceName);

    /**
     * 查询已有服务
     * @param info 服务信息
     * @return 该服务数量
     */
    Integer countInfoByIdStr(ServiceInfo info);

    /**
     * 为某服务续约
     * @param info 待续约信息
     * @return 该操作所影响的行数
     */
    int keepAlive(ServiceInfo info);

    /**
     * 返回所有服务列表
     * @return 所有服务的集合
     */
    List<ServiceInfo> getAllData();
}
